define(function(require,exports,module){
    var myPub = require('./public');
    var opwdBlock = $('.js_boundPwd');			// 密码栏
    var opwdInput = $('.js_password');			// 密码栏的输入框
    var opwdShow = $('.js_b_pwd div');			// 密码栏显示密码
    var oBoundNo = $('.js_boundNo');            // 卡号
    var oboundButton = $('.js_boundButton div');  // 绑定按钮
    var oclearBtn = $('.js_clearBtn');          // 清空按钮
    var ocashTip = $('.js_tipCon');             // 页面提示内容
    var opedGray = $('.js_passwordBlock');      // 密码置灰节点
    var oshadow = $('.js_shadow');              // 密码框上遮罩层
    var oNoTxt = $('.js_Notext');               // 卡号框
    var oTwinkle = $('.js_b_pwd i');            // 密码框闪烁的光标

    var boffTap = true;                         // 阻止多次点击
    var moreTapOffTime = null;                  // 多次点击定时器
    var maxlengthNo = 10;                       // 卡号最长为10位
    var maxlengthPwd = 6;                       // 密码最长为6位
    var bpwdButton = false;						// 校验密码是否符合
    var bNoButton = false;                      // 效验卡号是否符合
    var bNoLength = false;                      // 效验卡号是否是10位
    var bPwdLength = false;                     // 效验密码是否是6位
    var pwdindex = 0;

    var bindCardkUrl = "/prepaidCard/bindingCard"; // 绑卡url

    var errorTip = [
        '卡号不能为空',               // 0
        '密码不能为空',               // 1
        '请输入6位密码',              // 2
        '卡号不符合要求，请重新输入',   // 3
        '密码不符合要求，请重新输入',   // 4
        '请输入卡号、密码',            // 5
        '请点击立即绑定按钮'            // 6
    ];

// 密码区点击密码栏的输入框获取焦点
    opwdBlock.on('click',function(){
        opwdInput.focus();
        opwdShow.eq(pwdindex).html('<i></i>');
    });
// 表单验证
    oBoundNo.on('input propertychange',function () {
        ValidationNo(oBoundNo,function(){
            bNoButton = false;
        },function(){
            bNoButton = true;
            ocashTip.text(errorTip[5]);
        });
        if(bNoButton){
            if(oBoundNo.val().length == 10){
                opedGray.removeClass('gray');
                oNoTxt.addClass('sueecc');
                oNoTxt.removeClass('input');
                oshadow.hide();
                if(pwdindex == 6){
                    ocashTip.text(errorTip[6]);
                }else{
                    ocashTip.text(errorTip[2]);
                }
            }else{
                opedGray.addClass('gray');
                oNoTxt.removeClass('sueecc');
                oNoTxt.addClass('input');
                oshadow.show();
            }
        }else{
            ocashTip.text(errorTip[3]);
        }
        oBoundNo.val().length != 0? oclearBtn.show():oclearBtn.hide();
        oBoundNo.val().length == maxlengthNo?bNoLength = true:bNoLength = false;
        if(bNoButton&&bpwdButton&&bPwdLength&&bNoLength){
            oboundButton.addClass('active');
        }else{
            oboundButton.removeClass('active');
        }
    });

// 密码栏输入框输入显示密码
    opwdInput.on('input propertychange',function(){
        opwdShow.text('');
        pwdindex = opwdInput.val().length;
        if(!bNoButton){                     // 卡号为空输入密码时不能输入
            ocashTip.text(errorTip[0]);
            opwdShow.eq(0).html('<i></i>');
            opwdInput.val('');
            pwdindex = opwdInput.val().length;
             return;
        }
        if(pwdindex == 0){    // 当密码框为空时提示内容
            ocashTip.text(errorTip[2]);
            opwdShow.eq(0).html('<i></i>');
            return;
        }
        for(var i = 0;i<pwdindex;i++){        // 让输入在input内的内容显示在div中
            opwdShow.eq(i).html(opwdInput.val().charAt(i));
            opwdShow.eq(i+1).html('<i></i>')
        }
        ValidationNo(opwdInput,function(){     // 检验输入内容是否符合正则
            bpwdButton = false;
        },function(){
            bpwdButton = true;
            ocashTip.text(errorTip[2]);
        });
        if(bpwdButton){                         // 输入内容后提示的内容
            if(pwdindex == 6){
                ocashTip.text(errorTip[6]);
            }
        }else{
            ocashTip.text(errorTip[4]);
        }
        pwdindex == maxlengthPwd?bPwdLength = true:bPwdLength = false;
        if(bNoButton&&bpwdButton&&bPwdLength&&bNoLength){
            oboundButton.addClass('active');
        }else{
            oboundButton.removeClass('active');
        }
    });

    opwdInput.blur(function () {
        if(pwdindex ==0){
            opwdShow.eq(0).html('');
        }else{
            opwdShow.eq(pwdindex).html('')
        }
    });
// 绑定按钮操作
    oboundButton.on('click',function () {
        // 变亮状态
        if($(this).hasClass('active')){
            if(boffTap){
                opwdInput.blur();
                boffTap = false;
                G_JSON_POST(bindCardkUrl,{
                    "cardSign":oBoundNo.val(),
                    "cardKey":opwdInput.val()
                },function (data) {
                    if(data.status=="success"){
                        myPub.TipLayer(data.message,'no');
                        setTimeout(function () {
                            window.location.href="/prepaidCard/index";
                        }, 1000);
                    }else{
                        myPub.TipLayer(data.message,'no');
                        opwdShow.text('');
                        opwdInput.val('');
                        pwdindex = 0;
                        // opwdShow.eq(0).html('<i></i>');
                        bpwdButton = false;
                        oboundButton.removeClass('active');
                        ocashTip.text(errorTip[2]);
                    }
                }, function () {
                    // start
                }, function () {
                    // end
                });
            }
            // 在这里校验 卡号后台是否存在、是否激活、是否已绑定、密码是否正确
            // 全部正确后跳转到礼品卡页面 window.location.href = '/cashCards.html';
            clearTimeout(moreTapOffTime);
            moreTapOffTime = setTimeout(function () {
                boffTap = true;
            }, 500);
        }else{
            if(oBoundNo.val().length == 0){
                myPub.TipLayer(errorTip[0],'no');
                return;
            }
            if(opwdInput.val().length == 0){
                myPub.TipLayer(errorTip[1],'no');
                return;
            }
        }
    });

// 清空按钮操作
    oclearBtn.on('click',function () {
        oBoundNo.val('');
        oboundButton.removeClass('active');
        oNoTxt.removeClass('sueecc');
        oNoTxt.removeClass('input');
        opedGray.addClass('gray');
        ocashTip.text(errorTip[0]);
        // oNoTxt.removeClass('sueecc');
        oNoTxt.addClass('input');
        oshadow.show();
    });

// 数字字母验证卡号
    function ValidationNo(obj,fn1,fn2){
        var reg = /^[A-Za-z0-9]{0,10}$/;
        if (!reg.test(obj.val())) {
            if (fn1) {fn1()}
        } else{
            if (fn2) {fn2()}
        }
    }
});